import { Util } from '../../utils/util.js';

export class OtherFeeType {
    /**
     * @param {string} id - ID
     * @param {string} name - 名称
     * @param {string} code - 编码
     */
    constructor(id = '', name = '', code = '') {
        this.id = id;
        this.name = name;
        this.code = code;
    }

    // 空实例
    static empty() {
        return new OtherFeeType('', '','');
    }

    // 克隆方法
    static clone(unit) {
        return new OtherFeeType(unit.id, unit.name,unit.code);
    }

    // 从 JSON 构建
    static fromJson(json) {
        return new OtherFeeType(
            Util.jsonToString(json.id),
            Util.jsonToString(json.name),
            Util.jsonToString(json.code)
        );
    }

    // 从值构建
    static fromJsonValue({ id, name }) {
        return new OtherFeeType(
            Util.jsonToString(id),
            Util.jsonToString(name),
            Util.jsonToString(code)
        );
    }
}
